package com.studyv3.test.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.studyv3.common.core.page.PageDomain;
import com.studyv3.common.core.page.PageQuery;
import com.studyv3.common.core.page.TableDataInfo;
import com.studyv3.common.core.page.TableDataInfoPlus;
import com.studyv3.test.domain.ApplyWaste;
import com.studyv3.test.domain.bo.ApplyWasteBo;
import com.studyv3.test.domain.vo.ApplyWasteVo;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.transaction.annotation.Transactional;

import java.util.Collection;
import java.util.List;

/**
 * _报废申请/审批Service接口
 *
 * @author ruoyi
 * @date 2024-05-07
 */
public interface ApplyWasteService extends IService<ApplyWaste> {

    /**
     * 查询_报废申请/审批
     */
    ApplyWasteVo queryById(Long id);

    TableDataInfoPlus<ApplyWasteVo> queryPageList(ApplyWasteBo bo, PageQuery pageDomain);

    TableDataInfoPlus<ApplyWasteVo> queryPageListSelf(ApplyWasteBo bo, PageQuery pageDomain);

    /**
     * 查询_报废申请/审批列表
     */
    List<ApplyWasteVo> queryList(ApplyWasteBo bo);



    Boolean updateByBo(ApplyWasteBo bo);

    /**
     * 修改_报废申请/审批
     */


    Boolean handleWithdrawApply(List<Long> bo);

    Boolean employeeApply(ApplyWasteBo bo);

    Boolean managerAdvice(ApplyWasteBo bo);

    /**
     * 校验并批量删除_报废申请/审批信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

    Boolean handleWithdrawAdvice(List<Long> ids);

    @Transactional
    @Scheduled(cron = "0 0 * * * *")
    void bfAutoApplyScheduled();


}
